{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\min_{\\rho} F = F(\\mathbf u(\\rho), \\rho)=\\int_\\Omega f(\\mathbf u(\\rho), \\rho)\\mathrm d V\n",
    "$$\n",
    "s.t.\n",
    "$$\n",
    "\\begin{aligned}\n",
    "G_0(\\rho)=\\int_\\Omega\\rho(\\mathbf x)\\mathrm d V - V0 \\leq 0\\\\\n",
    "G_i(\\mathbf u(\\rho), \\rho)\\leq 0, j = 1, \\ldots, M\\\\\n",
    "\\rho(\\mathbf x) = 0 \\text{ or } 1, \\forall \\mathbf x\\in \\Omega\n",
    "\\end{aligned}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* $F$ object function\n",
    "* $f(\\mathbf u(\\rho), \\rho)$ the strain energy\n",
    "density when considering compliance optimization.\n",
    "* $\\mathbf u$ state field, satisfies a linear or non-linear state equation\n",
    "* $G_0\\leq 0$ volume constraint \n",
    "* $G_i\\leq 0, i=1, \\ldots, M$ $M$ other constraints\n",
    "* $\\rho(\\mathbf x)= 0 \\text{ or } 1$ material distribution in $\\Omega$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "** Discrete density variable method**\n",
    "$$\n",
    "\\min_{\\mathbf \\rho} F = F(\\mathbf u(\\mathbf \\rho), \\rho)=\\sum_i\\int_{\\Omega_i} f(\\mathbf u(\\rho_i), \\rho_i)\\mathrm d V\n",
    "$$\n",
    "s.t.\n",
    "$$\n",
    "\\begin{aligned}\n",
    "G_0(\\rho)=\\sum_i v_i\\rho_i - V_0 \\leq 0\\\\\n",
    "G_i(\\mathbf u(\\mathbf \\rho), \\mathbf \\rho)\\leq 0, j = 1, \\ldots, M\\\\\n",
    "\\rho_i = 0 \\text{ or } 1, \\forall \\mathbf x\\in \\Omega\n",
    "\\end{aligned}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The approaches to solve above problem\n",
    "\n",
    "* shape opimization problem\n",
    "    + Lagrangian approaches with boundary following mesh\n",
    "    + Eulerian approaches with fixed mesh\n",
    "* density approach\n",
    "    + Lagrangian approaches with boundary following mesh\n",
    "    + Eulerian approaches with fixed mesh"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Problem:\n",
    "\n",
    "1. The topology optimization problems lack solutions in general (sigmund and Petersson 1998)\n",
    "    + more holes to decrease the objective function\n",
    "    + more holes for increasing element number $N$\n",
    "        - relaxation \n",
    "        - restriction\n",
    "2. the discretized optimization problem is that the design variables only can take discrete values: 0 or 1 .\n",
    "3. Continuous density design variables allow for the use of efficient gradient-based optimization algorithms"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "** Continuous density design variables method**\n",
    "$$\n",
    "\\min_{\\mathbf \\rho} F = F(\\mathbf u(\\mathbf \\rho), \\rho)=\\sum_i\\int_{\\Omega_i} f(\\mathbf u(\\rho_i), \\rho_i)\\mathrm d V\n",
    "$$\n",
    "s.t.\n",
    "$$\n",
    "\\begin{aligned}\n",
    "G_0(\\rho)=\\sum_i v_i\\rho_i - V_0 \\leq 0\\\\\n",
    "G_i(\\mathbf u(\\mathbf \\rho), \\mathbf \\rho)\\leq 0, j = 1, \\ldots, M\\\\\n",
    "0\\leq \\rho_i \\leq 1 = 0, \\forall \\mathbf x\\in \\Omega\n",
    "\\end{aligned}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* checkerboard problem 棋盘格问题\n",
    "* high order elements can solve this problem (Sigmund and Petersson 1998)\n",
    "* nodal variables with element-wise constant densities do note create checkerboard-type instabilities (Amstutz 2011)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. Topology optimization approaches"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "the discretized topology opimization formulation continuous desigh variables."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**SIMP** (simplified Isotropic Material with Penalizaiton)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "E(\\rho_i)=g(\\rho_i)E_0=\\rho_i^pE_0, g(\\rho_i)=\\rho_i^p\n",
    "$$\n",
    "\n",
    "$p = 3$ is the magic number"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**RAMP** (Rational Approximation of Material Properties) (Stolpe and Svanberg 2001a)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "E(\\rho_i)=\\frac{\\rho_i}{1+q(1-\\rho_i)}E_0, g(\\rho_i)=\\frac{\\rho_i}{1+q(1-\\rho_i)}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "RAMP approach was to alleviate non-concavity of the original SIMP interpolation scheme\n",
    "\n",
    "this feature does not seem to play a strong role for practical problems. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  },
  "latex_envs": {
   "bibliofile": "biblio.bib",
   "cite_by": "apalike",
   "current_citInitial": 1,
   "eqLabelWithNumbers": true,
   "eqNumInitial": 0
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
